196f67daee7b5dab40e4bb3612e36f9c03685406,src/com/redhat/ceylon/compiler/java/codegen/Naming.java,Naming,addNamesForWrapperClass,#TypedDeclaration#LinkedList#number#,621

Before Change


        if ((namingOptions & NA_WRAPPER) != 0) {
            parts.push(getQuotedClassName(decl, namingOptions & (NA_GETTER | NA_SETTER)));
        } else if ((namingOptions & NA_WRAPPER_UNQUOTED) != 0) {
            parts.push(getRealName(decl, namingOptions & (NA_GETTER | NA_SETTER)));
        } else if ((namingOptions & NA_Q_LOCAL_INSTANCE) != 0) {
            parts.push(getAttrClassName(decl, namingOptions & (NA_GETTER | NA_SETTER)));
        }
        if ((namingOptions & NA_FQ) != 0) {
            Assert.that(((namingOptions & NA_WRAPPER) != 0)
                    || ((namingOptions & NA_WRAPPER_UNQUOTED) != 0), 
                    "If you pass FQ you must pass WRAPPER or WRAPPER_UNQUOTED too, or there's no class name to qualify!");
            Scope s = decl.getContainer();
            while (s != null) {
                if (s instanceof Package) {
                    final List<String> packageName = ((Package) s).getName();
                    for (int ii = packageName.size() - 1; ii >= 0; ii--) {
                        parts.push(quoteIfJavaKeyword(packageName.get(ii)));
                    }
                    if (!packageName.get(0).isEmpty()) {

After Change


            Assert.that(((namingOptions & NA_WRAPPER) != 0)
                    || ((namingOptions & NA_WRAPPER_UNQUOTED) != 0), 
                    "If you pass FQ you must pass WRAPPER or WRAPPER_UNQUOTED too, or there's no class name to qualify!");
            List<String> outerNames = null;
            Scope s = decl.getContainer();
            while (s != null) {
                if (s instanceof Package) {
                    final List<String> packageName = ((Package) s).getName();
                    if (!packageName.get(0).isEmpty()) {
                        expr = maker.Ident(names.empty);
                    }
                    for (int ii = 0; ii < packageName.size(); ii++) {
                        expr = iors(expr, quoteIfJavaKeyword(packageName.get(ii)));
                    }
                    break;
                } else if (s instanceof ClassOrInterface) {
                    if (outerNames == null) {
                        outerNames = new ArrayList<String>(2);
                    }
                    outerNames.add(getQuotedClassName((ClassOrInterface) s, 0));
                } else if (s instanceof TypedDeclaration) {
                    if (outerNames == null) {
                        outerNames = new ArrayList<String>(2);
                    }
                    outerNames.add(quoteIfJavaKeyword(((TypedDeclaration) s).getName()));
                }
                s = s.getContainer();
            }
            if (outerNames != null) {
                for (int ii = outerNames.size()-1; ii >= 0; ii--) {
                    String outerName = outerNames.get(ii);
                    expr = iors(expr, outerName);
                }
            }
        }
        if ((namingOptions & NA_WRAPPER) != 0) {
            expr = iors(expr, getQuotedClassName(decl, namingOptions & (NA_GETTER | NA_SETTER)));
        } else if ((namingOptions & NA_WRAPPER_UNQUOTED) != 0) {
            expr = iors(expr, getRealName(decl, namingOptions & (NA_GETTER | NA_SETTER)));
        } else if ((namingOptions & NA_Q_LOCAL_INSTANCE) != 0) {
            expr = iors(expr, getAttrClassName(decl, namingOptions & (NA_GETTER | NA_SETTER)));
        }